<?php
function set_cd($user) {
    $_SESSION['cd_log'] = $user;
    redirect(URL_CD);
    exit;
}

function set_fabrica($fab) {
    $_SESSION['admin'] = $fab;
    redirect(URL_ADM);
    exit;
}

class Entrar extends CI_Controller {

    public function index() {
        //checar se o usuario esta logado
        
        
        $this->check_log("admin", URL_ADMINISTRACAO);
        $this->check_log("distribuidor_log", URL_DISTRIBUIDOR);
        $this->check_log("lojista_log", URL_LOJISTA);
        $this->check_log("cd_log", URL_CD);


        $data = array();

//        if($_POST['entrar1'] == 'admin'){
//            $_POST['entrar1'] = '1ind';
//        }
        if (isset($_POST['entrar1'])){
                
                $this->login_fab($this->input->post('entrar1', true), $this->input->post('entrar2', true));

        }

        
        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view", $data);
    }

    public function index_loj() {
        $this->check_log("lojista_log", URL_LOJISTA);

        $data = array();

        if (!$this->input->post('entrar1')) {
            $data['error'] = 'Informe o usuário';
        }
        if (!$this->input->post('entrar2')) {
            $data['error'] = 'Informe a senha';
        }

        $this->login_lojista($this->input->post('entrar1', true), $this->input->post('entrar2', true));

        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view", $data);
    }

    private function check_log($name_session, $url_redirect) {
        if (isset($_SESSION[$name_session]) && $_SESSION[$name_session]) {
            redirect($url_redirect);
            exit;
        } else
            return false;
    }

    private function login_fab($login, $senha) {
        
        //login da Fabrica
        $login = $this->db->where(array('rf_login' => $login, 'rf_pw' => sha1($senha)))
                        ->join('responsaveis_fabrica', 'fabricas.fa_id = responsaveis_fabrica.rf_fabrica')
                        ->get('fabricas')->row();
        
        if (count($login)) {
            set_fabrica($login);
        }

        //Fim login da Fabrica		
    }

    private function login_distribuidor($senha, $login) {

        //Login destribuidor		 
        $login = $this->db->where(array('di_usuario' => $senha, 'di_senha' => sha1($login)))
                        ->join('cidades', 'di_cidade = ci_id')
                        ->join('distribuidor_qualificacao', 'dq_id=di_qualificacao')
                        ->get('distribuidores')->row();


        if (count($login)) {
            if (UsuariosBloqueados::estaBloqueado($login->di_id)) {
                redirect(base_url('index.php/entrar?msg=Sua conta foi bloqueada'));
            }


            $this->db->insert('historico_acesso', array(
            'ha_distribuidor' => $login->di_id,
            'ha_time' => time()
            ));

            set_distribuidor($login);

            $_SESSION['compra'] = 0;
        }

        //Fim Login destribuidor
    }

    private function login_lojista($login, $senha) {
        //Login destribuidor
        $usuario = $this->db
                        //->where(array('lj_usuario' => $login, 'lj_senha' => sha1($senha)))
                        ->where('lj_usuario', $login)
                        ->where('lj_senha', sha1($senha))
                        ->join('cidades', 'lj_cidade = ci_id', 'left')
                        ->get('lojistas')->row();

        if (UsuariosBloqueados::estaBloqueadoLojista($usuario->lj_id)) {
            redirect(base_url('index.php/entrar?msg=Sua conta foi bloqueada'));
        }




        if (count($usuario) > 0) {
            set_lojista($usuario);
            $_SESSION['compra'] = 0;
        }

        //Fim Login destribuidor
    }

    private function login_cdp($login, $senha) {

        //Login Cd	 
        $login_administrador = $this->db
                        ->where(array('cd_id' => str_ireplace(array("sup", "cdp"), array("", ""), $login), 'cd_pw' => sha1($senha)))
                        ->join('cidades', 'cd_cidade = ci_id')
                        ->get('cd')->result();

        $new_user = new StdClass;

        if (count($login_administrador)) {
            $new_user->nome = $login_administrador[0]->cd_nome;
            $new_user->cidade = $login_administrador[0]->cd_cidade;
            $new_user->uf = $login_administrador[0]->cd_uf;
            $new_user->id_cd = $login_administrador[0]->cd_id;
            $new_user->tipo = 1;
            $new_user->cd_suporte = $login_administrador[0]->cd_suporte;
            set_cd($new_user);
        }

        //Fim login CD 
    }

    public function alterar_senha() {



        //Se for lojista
        if (isset($_GET['loj']) && $_GET['loj'] == 'bJHCFs54vHCCg') {
            $token = $this->db
                            ->where('tk_token', $_GET['token'])
                            ->where('tk_usado', 0)
                            ->join('lojistas', 'lj_id=tk_ni')
                            ->get('token_senha')->result();

            if ($this->input->post('senha') && count($token) > 0) {

                $this->db->where('lj_id', $token[0]->tk_ni)
                        ->update('lojistas', array(
                        'lj_senha' => sha1($this->input->post('senha'))
                ));

                $this->db->where('tk_ni', $token[0]->tk_ni)
                        ->update('token_senha', array(
                        'tk_usado' => 1
                ));
                redirect(base_url() . "index.php/entrar/alterar_senha_mensagem");
            }

            //Se for distribuidor
        } else {
            $token = $this->db
                            ->where('tk_token', $_GET['token'])
                            ->where('tk_usado', 0)
                            ->join('distribuidores', 'di_id=tk_ni')
                            ->get('token_senha')->result();

            if ($this->input->post('senha')) {
                $this->db->where('di_id', $token[0]->tk_ni)
                        ->update('distribuidores', array(
                        'di_senha' => sha1($this->input->post('senha'))
                ));
                $this->db->where('tk_ni', $token[0]->tk_ni)
                        ->update('token_senha', array(
                        'tk_usado' => 1
                ));
                redirect(base_url() . "index.php/entrar/alterar_senha_mensagem");
            }
        }

        if (count($token)) {
            $this->load->view(strtolower(__CLASS__) .
                    "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view");
        } else {
            redirect(base_url() . "index.php/entrar/");
        }
    }

    public function alterar_senha_mensagem() {
        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view");
    }

    public function solicitar_alterar_senha() {
        $data = array();
        if (isset($_POST['ni'])) {
            $di = $this->db->where('di_usuario', $_POST['ni'])->get('distribuidores')->row();

            //Verifica se não é um lojista
            if (count($di) == 0) {
                $di = $this->db->where('lj_usuario', $_POST['ni'])->get('lojistas')->row();
                $di->di_id = $di->lj_id;
                $di->di_nome = $di->lj_nome;
                $di->di_email = $di->lj_email;
            }

            if ($di) {

                $this->load->helper('my_email');

                $token = base64_encode(round(1111, 9999) . date('H:i:s') . $di->di_id);

                $this->db->insert('token_senha', array('tk_ni' => $di->di_id, 'tk_token' => $token));

                $body = layout_email("
	
					<p>Olá <strong>" . $di->di_nome . "</strong><br>
					  <br>
					  Foi solicitado em nosso sistema um pedido de recuperação de senha.<br>
					  <br>
					  Caso queira realmente alterar sua senha no sistema clique no link abaixo<br>
					  <br>
					  <a href='" . base_url("index.php/entrar/alterar_senha?token={$token}") . "'>
					  " . base_url("index.php/entrar/alterar_senha?token={$token}&loj=bJHCFs54vHCCg") . "
					  </a>
					<br />
					<br />
					");


                enviar_notificacao($di->di_email, utf8_decode('Recuperar senha - ' . get_loja()->fa_nome), $body);

                redirect(base_url() . "index.php/entrar/mudar_senha_mensagem/{$di->di_id}");
            } else {
                $data['error'] = 'NI não é válido.';
            }
        }


        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view", $data);
    }

    public function mudar_senha_mensagem() {
        $this->load->view(strtolower(__CLASS__) .
                "/" . strtolower(str_ireplace(__CLASS__ . '::', '', __METHOD__)) . "_view");
    }

}
